/*
 * Control.cpp
 *
 *  Created on: 15.03.2013
 *      Author: mag
 */

#include "Control.h"

static const int MODULE_SLOT_COUNT=16;

Control::Control() {
	getTagger();
}

Control::~Control() {
}


void Control::start() {
	getTagger()->start();
}

void Control::stop() {
	getTagger()->stop();
}

void Control::shutdown() {
	stop();
}

_Tagger *Control::getTagger() {
	return _Tagger::getTagger(0);
}

_Iterator *Control::module_slots[MODULE_SLOT_COUNT] = {0};

_Iterator *Control::get_module_slot(int n) {
	return n<MODULE_SLOT_COUNT ? module_slots[n] : 0;
}

_Iterator **Control::get_module_slots(size_t &n) {
	n=MODULE_SLOT_COUNT;
	return module_slots;
}

int Control::find_module_slot() {
	for (int n=0; n<MODULE_SLOT_COUNT; ++n) {
		if (module_slots[n]==0)
			return n;
	}
	return -1;
}
void Control::set_module_slot(int n, _Iterator *it) {
	if (n<MODULE_SLOT_COUNT) {
		module_slots[n]=it;
	}
}

